#include "row.h"

void initRow(row *l) {
  *l = NULL;
}

/*=============inserção dos valores===================*/
void insertRow(row *l, char *string) {
  row n = (row) malloc(sizeof (struct Camp));
  char* str = (char*) malloc(strlen(string) * sizeof (char) + 1);
  strcpy(str, string);
  (*n).valor = str;

  if (*l) {
    (*n).prox = (**l).prox;
    (**l).prox = n;

  } else
    (*n).prox = n;
  *l = n;
}

/*=================retirada dos valores===============*/
char* removeRow(row *l) {
  row aux;
  char* temp;

  if (*l == (**l).prox) {
    aux = *l;
    temp = (char*) malloc(strlen(aux->valor)*sizeof(char)+1);
    strcpy(temp,aux->valor);
    *l = NULL;
  } else {
    aux = (**l).prox;
    (**l).prox = (*aux).prox;
    temp = (char*) malloc(strlen(aux->valor)*sizeof(char)+1);
    strcpy(temp,aux->valor);
  }

  return temp;
}


/*==============impressão dos valores=====================*/
void printRow(row l) {
  row aux;
  aux = l->prox;

  printf("Fila: [");
  printf("%s ", (aux)->valor);

  while ((aux)->prox != l->prox) {
    aux = (aux)->prox;
    printf(",%s  ", (aux)->valor);
  }
  printf("]\n");
}
